ode_solver Interface

interface
public subroutine ode_solver(this, sys, x, iv, err)

Arguments

Type IntentOptional Attributes Name
class(ode_integrator), intent(inout) :: this

The ode_integrator object.

class(ode_container), intent(inout) :: sys

The ode_container object containing the ODE's to integrate.

real(kind=real64), intent(in), dimension(:) :: x

An array, of at least 2 values, defining at a minimum the starting and ending values of the independent variable integration range. If more than two values are specified, the integration results will be returned at the supplied values.

real(kind=real64), intent(in), dimension(:) :: iv

An array containing the initial values for each ODE.

class(errors), intent(inout), optional, target :: err

An optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.

  • DIFFEQ_MEMORY_ALLOCATION_ERROR: Occurs if there is a memory allocation issue.

  • DIFFEQ_NULL_POINTER_ERROR: Occurs if no ODE function is defined.

  • DIFFEQ_ARRAY_SIZE_ERROR: Occurs if there are less than 2 values given in the independent variable array x.

Description

Solves the supplied system of ODE's.